package de.age.engine.model.render.assets;

import com.badlogic.gdx.Files.FileType;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array;

/**
 * A POJO holding all needed information to load and initiate an asset.
 * 
 * Used within {@link AssetManager} for the loadingQueue. Will be destroyed after loading is done. Not present within the rendering loop.
 * 
 * @author Philipp Sigloch
 * 
 */
public class Asset {
	
	private String identifier;
	
	private String loadPath;
	
	private EAsset type;
	
	private Array<String> textureAreas;
	
	private Vector2 realtionCutting;
	
	private FileType assetPosition = FileType.External;
	
	
	/**
	 * @param identifier the identifier
	 * @param loadPath the load path
	 * @param type the {@link EAsset} type
	 */
	public Asset(String identifier, String loadPath, EAsset type) {
		super();
		this.identifier = identifier;
		this.loadPath = loadPath;
		this.type = type;
	}
	
	/**
	 * @return the textureAreas
	 */
	public Array<String> getTextureAreas() {
		return this.textureAreas;
	}
	
	/**
	 * @param textureAreas the textureAreas to set
	 */
	public void setTextureAreas(Array<String> textureAreas) {
		this.textureAreas = textureAreas;
	}
	
	/**
	 * @return the realtionCutting
	 */
	public Vector2 getRealtionCutting() {
		return this.realtionCutting;
	}
	
	/**
	 * @param realtionCutting the realtionCutting to set
	 */
	public void setRealtionCutting(Vector2 realtionCutting) {
		this.realtionCutting = realtionCutting;
	}
	
	/**
	 * @return the assetPosition
	 */
	public FileType getAssetPosition() {
		return this.assetPosition;
	}
	
	/**
	 * @param assetPosition the assetPosition to set
	 */
	public void setAssetPosition(FileType assetPosition) {
		this.assetPosition = assetPosition;
	}
	
	/**
	 * @return the identifier
	 */
	public String getIdentifier() {
		return this.identifier;
	}
	
	/**
	 * @return the loadPath
	 */
	public String getLoadPath() {
		return this.loadPath;
	}
	
	/**
	 * @return the type
	 */
	public EAsset getType() {
		return this.type;
	}
	
}
